package com.cn.springcloudshop.service.inter;

import com.cn.springcloudshop.model.CountOrderStatusPOJO;
import com.cn.springcloudshop.model.YmShopOrder;
import com.cn.springcloudshop.model.YmShopOrderExample;

import java.util.List;

/**
 * @Author: wuyanzu
 * @Date: 2018/8/1
 */
public interface OrderService {
    /**
    *
    * 根据主键修改订单展示标志
    * @author wuyanzu
    * @date 2018/8/1 11:27
    * @param [id]
    * @return int
    */
    int deleteByPrimaryKey(Long id);

    /**
    *
    * 创建订单
    * @author wuyanzu
    * @date 2018/8/1 10:08
    * @param [record]
    * @return int
    */
    int insert(YmShopOrder record);

    /**
    *
    * 选择性创建订单
    * @author wuyanzu
    * @date 2018/8/1 10:08
    * @param [record]
    * @return int
    */
    int insertSelective(YmShopOrder record);

    /**
    *
    * 订单条件查询
    * @author wuyanzu
    * @date 2018/8/1 10:08
    * @param [example]
    * @return java.util.List<com.cn.springcloudshop.model.YmShopOrder>
    */
    List<YmShopOrder> selectByExample(YmShopOrderExample example);

    /**
    *
    * 根据主键查询订单信息
    * @author wuyanzu
    * @date 2018/8/1 10:09
    * @param [shopOrderId]
    * @return com.cn.springcloudshop.model.YmShopOrder
    */
    YmShopOrder selectByPrimaryKey(Long shopOrderId);

    /**
    *
    * 跟新订单信息
    * @author wuyanzu
    * @date 2018/8/1 10:11
    * @param [record]
    * @return int
    */
    int updateByPrimaryKeySelective(YmShopOrder record);

    /**
    *
    * 选择性跟新订单信息
    * @author wuyanzu
    * @date 2018/8/1 10:11
    * @param [record]
    * @return int
    */
    int updateByPrimaryKey(YmShopOrder record);

    /**
    *
    * 批量更新订单信息
    * @author wuyanzu
    * @date 2018/8/6 16:47
    * @param [orders]
    * @return int
    */
    int updateBatchByPK(List<YmShopOrder> orders);

    /**
    *
    * 根据条件计数
    * @author wuyanzu
    * @date 2018/8/9 11:46
    * @param [example]
    * @return int
    */
    int countByExample(YmShopOrderExample example);


    /**
    *
    * 根据订单类型分组统计条数
    * @author wuyanzu
    * @date 2018/8/15 15:09
    * @param []
    * @return java.util.List<com.cn.springcloudshop.model.CountOrderStatusPOJO>
    */
    List<CountOrderStatusPOJO> countByStatus(Long userId);
}
